import%20marimo%0A%0A__generated_with%20%3D%20%220.17.6%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22%2C%20auto_download%3D%5B%22html%22%2C%20%22ipynb%22%5D)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(rf%22%22%22%0A%20%20%20%20%23%20MLP%20%7C%20Term-3%20%7C%202025%20Kaggle%20Assignment-1%0A%20%20%20%20Use%20the%20training%20data%20provided%20to%20train%20your%20model%20and%20make%20predictions%20on%20the%20test%20data%20for%20which%20the%20test%20labels%20will%20be%20hidden.%0A%0A%20%20%20%20---%0A%0A%20%20%20%20The%20dataset%20requires%20you%20to%20make%20predictions%20on%20the%20price%20of%20a%20house%20given%20a%20set%20of%20features.%20The%20features%20are%20listed%20below.%0A%0A%20%20%20%20%23%23%20Files%0A%20%20%20%20-%20**train.csv**%20-%20The%20training%20set%20which%20contains%20the%20features%20and%20the%20target%0A%20%20%20%20-%20**test.csv**%20-%20The%20test%20set%20for%20which%20the%20target%20column%20is%20hidden%0A%20%20%20%20-%20**sample_submission.csv**%20-%20A%20sample%20submission%20file%20in%20the%20correct%20format%0A%0A%20%20%20%20%23%23%20Column%20Description%0A%20%20%20%20-%20**id%3A**%20A%20unique%20identifier%0A%20%20%20%20-%20**area_type%3A**%20Each%20house%20is%20associated%20with%20a%20specific%20area_type%0A%20%20%20%20-%20**availability%3A**%20Is%20the%20house%20available%20to%20move%20into%3F%0A%20%20%20%20-%20**location%3A**%20Location%20of%20the%20house%0A%20%20%20%20-%20**size%3A**%20Details%20on%20Bedrooms%2C%20Halls%20and%20Kitchens%0A%20%20%20%20-%20**total_sqft%3A**%20total%20area%20of%20the%20house%20in%20square%20feet%0A%20%20%20%20-%20**bath%3A**%20Number%20of%20bathrooms%20in%20the%20house%0A%20%20%20%20-%20**balcony%3A**%20Number%20of%20balconies%20in%20the%20house%0A%20%20%20%20-%20**price%3A**%20Information%20about%20price%20of%20the%20house.%20This%20is%20the%20target%20variable%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20os%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20pandas%20as%20pd%0A%20%20%20%20from%20pathlib%20import%20Path%0A%20%20%20%20from%20sklearn.pipeline%20import%20Pipeline%0A%20%20%20%20from%20sklearn.compose%20import%20ColumnTransformer%0A%20%20%20%20from%20sklearn.linear_model%20import%20(%0A%20%20%20%20%20%20%20%20LinearRegression%2C%0A%20%20%20%20%20%20%20%20%23%20LogisticRegression%2C%0A%20%20%20%20%20%20%20%20Ridge%2C%0A%20%20%20%20%20%20%20%20Lasso%2C%0A%20%20%20%20)%0A%20%20%20%20from%20sklearn.ensemble%20import%20RandomForestRegressor%2C%20GradientBoostingRegressor%0A%20%20%20%20from%20sklearn.model_selection%20import%20train_test_split%2C%20cross_val_score%0A%20%20%20%20from%20sklearn.metrics%20import%20(%0A%20%20%20%20%20%20%20%20%23%20root_mean_squared_error%2C%0A%20%20%20%20%20%20%20%20mean_squared_error%2C%0A%20%20%20%20%20%20%20%20mean_absolute_error%2C%0A%20%20%20%20%20%20%20%20r2_score%2C%0A%20%20%20%20)%0A%20%20%20%20from%20sklearn.preprocessing%20import%20(%0A%20%20%20%20%20%20%20%20OneHotEncoder%2C%0A%20%20%20%20%20%20%20%20StandardScaler%2C%0A%20%20%20%20%20%20%20%20PolynomialFeatures%2C%0A%20%20%20%20)%0A%0A%20%20%20%20from%20xgboost%20import%20XGBRegressor%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20ColumnTransformer%2C%0A%20%20%20%20%20%20%20%20GradientBoostingRegressor%2C%0A%20%20%20%20%20%20%20%20Lasso%2C%0A%20%20%20%20%20%20%20%20LinearRegression%2C%0A%20%20%20%20%20%20%20%20OneHotEncoder%2C%0A%20%20%20%20%20%20%20%20Path%2C%0A%20%20%20%20%20%20%20%20Pipeline%2C%0A%20%20%20%20%20%20%20%20PolynomialFeatures%2C%0A%20%20%20%20%20%20%20%20Ridge%2C%0A%20%20%20%20%20%20%20%20StandardScaler%2C%0A%20%20%20%20%20%20%20%20XGBRegressor%2C%0A%20%20%20%20%20%20%20%20cross_val_score%2C%0A%20%20%20%20%20%20%20%20mean_absolute_error%2C%0A%20%20%20%20%20%20%20%20mean_squared_error%2C%0A%20%20%20%20%20%20%20%20np%2C%0A%20%20%20%20%20%20%20%20os%2C%0A%20%20%20%20%20%20%20%20pd%2C%0A%20%20%20%20%20%20%20%20r2_score%2C%0A%20%20%20%20%20%20%20%20train_test_split%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell%0Adef%20_(Path%2C%20os)%3A%0A%20%20%20%20IS_KAGGLE%20%3D%20%22KAGGLE_KERNEL_RUN_TYPE%22%20in%20os.environ%0A%0A%20%20%20%20if%20IS_KAGGLE%3A%0A%20%20%20%20%20%20%20%20DATA_DIR%20%3D%20Path(%22%2Fkaggle%2Finput%2Fmlp-term-3-2025-kaggle-assignment-1%2F%22)%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20DATA_DIR%20%3D%20Path(%22datasets%2F%22)%0A%20%20%20%20return%20DATA_DIR%2C%20IS_KAGGLE%0A%0A%0A%40app.cell%0Adef%20_(DATA_DIR%2C%20pd)%3A%0A%20%20%20%20trainDF%20%3D%20pd.read_csv(DATA_DIR%20%2F%20%22train.csv%22)%0A%20%20%20%20testDF%20%3D%20pd.read_csv(DATA_DIR%20%2F%20%22test.csv%22)%0A%20%20%20%20sampleSubDF%20%3D%20pd.read_csv(DATA_DIR%20%2F%20%22sample_submission.csv%22)%0A%20%20%20%20return%20testDF%2C%20trainDF%0A%0A%0A%40app.cell%0Adef%20_(trainDF)%3A%0A%20%20%20%20trainDF.info()%0A%20%20%20%20trainDF.head()%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(trainDF)%3A%0A%20%20%20%20trainDF.dropna(subset%3D%5B%22price%22%5D%2C%20inplace%3DTrue)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(trainDF)%3A%0A%20%20%20%20trainDF%5B%22location%22%5D%20%3D%20trainDF%5B%22location%22%5D.fillna(%22Unknown%22)%0A%20%20%20%20trainDF%5B%22size%22%5D%20%3D%20trainDF%5B%22size%22%5D.fillna(%22Unknown%22)%0A%20%20%20%20trainDF%5B%22total_sqft%22%5D%20%3D%20trainDF%5B%22total_sqft%22%5D.fillna(%0A%20%20%20%20%20%20%20%20trainDF%5B%22total_sqft%22%5D.median()%0A%20%20%20%20)%0A%20%20%20%20trainDF%5B%22bath%22%5D%20%3D%20trainDF%5B%22bath%22%5D.fillna(trainDF%5B%22bath%22%5D.median())%0A%20%20%20%20trainDF%5B%22balcony%22%5D%20%3D%20trainDF%5B%22balcony%22%5D.fillna(trainDF%5B%22balcony%22%5D.median())%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20trainDF)%3A%0A%20%20%20%20trainDF%5B%22bhk%22%5D%20%3D%20trainDF%5B%22size%22%5D.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%20int(str(x).split()%5B0%5D)%20if%20str(x).split()%5B0%5D.isdigit()%20else%20np.nan%0A%20%20%20%20)%0A%20%20%20%20trainDF%5B%22bhk%22%5D%20%3D%20trainDF%5B%22bhk%22%5D.fillna(trainDF%5B%22bhk%22%5D.median())%0A%0A%20%20%20%20trainDF%5B%22bath_per_bhk%22%5D%20%3D%20trainDF.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%20x%5B%22bath%22%5D%20%2F%20x%5B%22bhk%22%5D%20if%20x%5B%22bhk%22%5D%20%3E%200%20else%200%2C%20axis%3D1%0A%20%20%20%20)%0A%0A%20%20%20%20trainDF%5B%22balcony_per_bhk%22%5D%20%3D%20trainDF.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%20x%5B%22balcony%22%5D%20%2F%20x%5B%22bhk%22%5D%20if%20x%5B%22bhk%22%5D%20%3E%200%20else%200%2C%20axis%3D1%0A%20%20%20%20)%0A%0A%20%20%20%20trainDF%5B%22is_ready%22%5D%20%3D%20trainDF%5B%22availability%22%5D.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%201%20if%20%22Ready%22%20in%20str(x)%20else%200%0A%20%20%20%20)%0A%0A%20%20%20%20trainDF%5B%22availability_type%22%5D%20%3D%20trainDF%5B%22availability%22%5D.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%20%22Ready%22%20if%20%22Ready%22%20in%20str(x)%20else%20%22Future%22%0A%20%20%20%20)%0A%0A%20%20%20%20trainDF%5B%22log_total_sqft%22%5D%20%3D%20np.log1p(trainDF%5B%22total_sqft%22%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(trainDF)%3A%0A%20%20%20%20trainDF.drop(%5B%22id%22%2C%20%22size%22%5D%2C%20axis%3D1%2C%20inplace%3DTrue)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(trainDF)%3A%0A%20%20%20%20X%20%3D%20trainDF.drop(%22price%22%2C%20axis%3D1)%0A%20%20%20%20y%20%3D%20trainDF%5B%22price%22%5D%0A%20%20%20%20return%20X%2C%20y%0A%0A%0A%40app.cell%0Adef%20_(X%2C%20train_test_split%2C%20y)%3A%0A%20%20%20%20X_train%2C%20X_test%2C%20y_train%2C%20y_test%20%3D%20train_test_split(%0A%20%20%20%20%20%20%20%20X%2C%20y%2C%20test_size%3D0.2%2C%20random_state%3D42%0A%20%20%20%20)%0A%20%20%20%20return%20X_test%2C%20X_train%2C%20y_test%2C%20y_train%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20categorical_cols%20%3D%20%5B%22area_type%22%2C%20%22availability%22%2C%20%22location%22%5D%0A%20%20%20%20numeric_cols%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%22total_sqft%22%2C%0A%20%20%20%20%20%20%20%20%22log_total_sqft%22%2C%0A%20%20%20%20%20%20%20%20%22bath%22%2C%0A%20%20%20%20%20%20%20%20%22balcony%22%2C%0A%20%20%20%20%20%20%20%20%22bhk%22%2C%0A%20%20%20%20%20%20%20%20%22bath_per_bhk%22%2C%0A%20%20%20%20%20%20%20%20%22balcony_per_bhk%22%2C%0A%20%20%20%20%20%20%20%20%22is_ready%22%2C%0A%20%20%20%20%5D%0A%20%20%20%20return%20categorical_cols%2C%20numeric_cols%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20ColumnTransformer%2C%0A%20%20%20%20GradientBoostingRegressor%2C%0A%20%20%20%20OneHotEncoder%2C%0A%20%20%20%20Pipeline%2C%0A%20%20%20%20PolynomialFeatures%2C%0A%20%20%20%20StandardScaler%2C%0A%20%20%20%20categorical_cols%2C%0A%20%20%20%20numeric_cols%2C%0A)%3A%0A%20%20%20%20numeric_transformer%20%3D%20Pipeline(%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20(%22scaler%22%2C%20StandardScaler())%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20(%22poly%22%2C%20PolynomialFeatures(degree%3D2%2C%20include_bias%3DFalse))%2C%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20)%0A%0A%20%20%20%20preprocessor%20%3D%20ColumnTransformer(%0A%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20(%22cat%22%2C%20OneHotEncoder(handle_unknown%3D%22ignore%22)%2C%20categorical_cols)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20(%22num%22%2C%20numeric_transformer%2C%20numeric_cols)%2C%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20)%0A%0A%20%20%20%20%23%20model%20%3D%20LinearRegression(n_jobs%3D-1)%0A%20%20%20%20%23%20model%20%3D%20RandomForestRegressor(n_estimators%3D200%2C%20random_state%3D42%2C%20n_jobs%3D-1)%0A%20%20%20%20model%20%3D%20GradientBoostingRegressor(random_state%3D42)%0A%0A%20%20%20%20pipeline%20%3D%20Pipeline(steps%3D%5B(%22preprocessor%22%2C%20preprocessor)%2C%20(%22model%22%2C%20model)%5D)%0A%20%20%20%20return%20pipeline%2C%20preprocessor%0A%0A%0A%40app.cell%0Adef%20_(GradientBoostingRegressor%2C%20Lasso%2C%20LinearRegression%2C%20Ridge%2C%20XGBRegressor)%3A%0A%20%20%20%20models%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%22LinearRegression%22%3A%20LinearRegression(n_jobs%3D-1)%2C%0A%20%20%20%20%20%20%20%20%23%20%22RandomForest%22%3A%20RandomForestRegressor(%0A%20%20%20%20%20%20%20%20%23%20%20%20%20%20n_estimators%3D200%2C%20random_state%3D42%2C%20n_jobs%3D-1%0A%20%20%20%20%20%20%20%20%23%20)%2C%0A%20%20%20%20%20%20%20%20%22Ridge%22%3A%20Ridge(alpha%3D1.0)%2C%0A%20%20%20%20%20%20%20%20%22Lasso%22%3A%20Lasso(alpha%3D0.001%2C%20max_iter%3D5000)%2C%0A%20%20%20%20%20%20%20%20%22GradientBoosting%22%3A%20GradientBoostingRegressor(random_state%3D42)%2C%0A%20%20%20%20%20%20%20%20%22XGBoost%22%3A%20XGBRegressor(%0A%20%20%20%20%20%20%20%20%20%20%20%20random_state%3D42%2C%20n_estimators%3D300%2C%20learning_rate%3D0.1%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%7D%0A%20%20%20%20return%20(models%2C)%0A%0A%0A%40app.cell%0Adef%20_(Pipeline%2C%20X%2C%20cross_val_score%2C%20models%2C%20preprocessor%2C%20y)%3A%0A%20%20%20%20for%20_name%2C%20_model%20in%20models.items()%3A%0A%20%20%20%20%20%20%20%20_pipe%20%3D%20Pipeline(steps%3D%5B(%22preprocessor%22%2C%20preprocessor)%2C%20(%22model%22%2C%20_model)%5D)%0A%20%20%20%20%20%20%20%20_scores%20%3D%20cross_val_score(_pipe%2C%20X%2C%20y%2C%20cv%3D5%2C%20scoring%3D%22r2%22)%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20f%22%7B_name%3A%3C20%7D%3A%20R%C2%B2%20mean%20%3D%20%7B_scores.mean()%3A.3f%7D%20%20%7C%20%20std%20%3D%20%7B_scores.std()%3A.3f%7D%22%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(X_train%2C%20pipeline%2C%20y_train)%3A%0A%20%20%20%20pipeline.fit(X_train%2C%20y_train)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20X_train%2C%0A%20%20%20%20mean_absolute_error%2C%0A%20%20%20%20mean_squared_error%2C%0A%20%20%20%20pipeline%2C%0A%20%20%20%20r2_score%2C%0A%20%20%20%20y_train%2C%0A)%3A%0A%20%20%20%20_y_pred%20%3D%20pipeline.predict(X_train)%0A%20%20%20%20_mae%20%3D%20mean_absolute_error(y_train%2C%20_y_pred)%0A%20%20%20%20%23%20_rmse%20%3D%20root_mean_squared_error(y_train%2C%20_y_pred)%0A%20%20%20%20_rmse%20%3D%20mean_squared_error(y_train%2C%20_y_pred)%20**%200.5%0A%20%20%20%20_r2%20%3D%20r2_score(y_train%2C%20_y_pred)%0A%0A%20%20%20%20print(%22Train%20Data%20Stats%3A%22)%0A%20%20%20%20print(f%22%5CtMean%20Absolute%20Error%3A%20%7B_mae%3A.2f%7D%22)%0A%20%20%20%20print(f%22%5CtRoot%20Mean%20Square%20Error%3A%20%7B_rmse%3A.2f%7D%22)%0A%20%20%20%20print(f%22%5CtR%5E2%20Score%3A%20%7B_r2%3A.2f%7D%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20X_test%2C%0A%20%20%20%20mean_absolute_error%2C%0A%20%20%20%20mean_squared_error%2C%0A%20%20%20%20pipeline%2C%0A%20%20%20%20r2_score%2C%0A%20%20%20%20y_test%2C%0A)%3A%0A%20%20%20%20_y_pred%20%3D%20pipeline.predict(X_test)%0A%20%20%20%20_mae%20%3D%20mean_absolute_error(y_test%2C%20_y_pred)%0A%20%20%20%20%23%20_rmse%20%3D%20root_mean_squared_error(y_test%2C%20_y_pred)%0A%20%20%20%20_rmse%20%3D%20mean_squared_error(y_test%2C%20_y_pred)%20**%200.5%0A%20%20%20%20_r2%20%3D%20r2_score(y_test%2C%20_y_pred)%0A%0A%20%20%20%20print(%22Test%20Data%20Stats%3A%22)%0A%20%20%20%20print(f%22%5CtMean%20Absolute%20Error%3A%20%7B_mae%3A.2f%7D%22)%0A%20%20%20%20print(f%22%5CtRoot%20Mean%20Square%20Error%3A%20%7B_rmse%3A.2f%7D%22)%0A%20%20%20%20print(f%22%5CtR%5E2%20Score%3A%20%7B_r2%3A.2f%7D%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(testDF)%3A%0A%20%20%20%20testDF%5B%22location%22%5D%20%3D%20testDF%5B%22location%22%5D.fillna(%22Unknown%22)%0A%20%20%20%20testDF%5B%22size%22%5D%20%3D%20testDF%5B%22size%22%5D.fillna(%22Unknown%22)%0A%20%20%20%20testDF%5B%22total_sqft%22%5D%20%3D%20testDF%5B%22total_sqft%22%5D.fillna(%0A%20%20%20%20%20%20%20%20testDF%5B%22total_sqft%22%5D.median()%0A%20%20%20%20)%0A%20%20%20%20testDF%5B%22bath%22%5D%20%3D%20testDF%5B%22bath%22%5D.fillna(testDF%5B%22bath%22%5D.median())%0A%20%20%20%20testDF%5B%22balcony%22%5D%20%3D%20testDF%5B%22balcony%22%5D.fillna(testDF%5B%22balcony%22%5D.median())%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20testDF)%3A%0A%20%20%20%20testDF%5B%22bhk%22%5D%20%3D%20testDF%5B%22size%22%5D.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%20int(str(x).split()%5B0%5D)%20if%20str(x).split()%5B0%5D.isdigit()%20else%20np.nan%0A%20%20%20%20)%0A%20%20%20%20testDF%5B%22bhk%22%5D%20%3D%20testDF%5B%22bhk%22%5D.fillna(testDF%5B%22bhk%22%5D.median())%0A%0A%20%20%20%20testDF%5B%22price_per_sqft%22%5D%20%3D%200%0A%0A%20%20%20%20testDF%5B%22bath_per_bhk%22%5D%20%3D%20testDF.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%20x%5B%22bath%22%5D%20%2F%20x%5B%22bhk%22%5D%20if%20x%5B%22bhk%22%5D%20%3E%200%20else%200%2C%20axis%3D1%0A%20%20%20%20)%0A%0A%20%20%20%20testDF%5B%22balcony_per_bhk%22%5D%20%3D%20testDF.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%20x%5B%22balcony%22%5D%20%2F%20x%5B%22bhk%22%5D%20if%20x%5B%22bhk%22%5D%20%3E%200%20else%200%2C%20axis%3D1%0A%20%20%20%20)%0A%0A%20%20%20%20testDF%5B%22is_ready%22%5D%20%3D%20testDF%5B%22availability%22%5D.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%201%20if%20%22Ready%22%20in%20str(x)%20else%200%0A%20%20%20%20)%0A%0A%20%20%20%20testDF%5B%22availability_type%22%5D%20%3D%20testDF%5B%22availability%22%5D.apply(%0A%20%20%20%20%20%20%20%20lambda%20x%3A%20%22Ready%22%20if%20%22Ready%22%20in%20str(x)%20else%20%22Future%22%0A%20%20%20%20)%0A%0A%20%20%20%20testDF%5B%22log_total_sqft%22%5D%20%3D%20np.log1p(testDF%5B%22total_sqft%22%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(testDF)%3A%0A%20%20%20%20testDF.drop(%5B%22size%22%5D%2C%20axis%3D1%2C%20inplace%3DTrue)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(pipeline%2C%20testDF)%3A%0A%20%20%20%20test_y_pred%20%3D%20pipeline.predict(testDF)%0A%20%20%20%20return%20(test_y_pred%2C)%0A%0A%0A%40app.cell%0Adef%20_(pd%2C%20testDF%2C%20test_y_pred)%3A%0A%20%20%20%20submission_df%20%3D%20pd.DataFrame(%7B%22id%22%3A%20testDF%5B%22id%22%5D%2C%20%22price%22%3A%20test_y_pred%7D)%0A%20%20%20%20return%20(submission_df%2C)%0A%0A%0A%40app.cell%0Adef%20_(submission_df)%3A%0A%20%20%20%20submission_df.describe(include%3D%22all%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(IS_KAGGLE%2C%20submission_df)%3A%0A%20%20%20%20if%20IS_KAGGLE%3A%0A%20%20%20%20%20%20%20%20submission_df.to_csv(%22submission.csv%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
138b31a52c65e6fb102289e94fa9b39faf68097f24893e25427125ef29e834fe